package com.junyang.showdata.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junyang.showdata.pojo.CityCountWithName;
import com.junyang.showdata.pojo.CityData;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * @Author fusijia
 * @Date 2025/1/14 9:16
 * @notes CityData Mapper层
 */

@Repository
@Mapper
public interface CityDataMapper{

    List<CityData> getListById(int id);

    Integer getRiskCount(int riskLevel);

    Integer getRiskCountByFinish(int riskLevel,int finishCircumstance);

    /**
     * notes:根据开始和结束时间获取数据数量
    *@Author：fusijia
    *@Date：2025/1/14 16:16
    *@return：数据总数
    *@param: startTime开始时间
     * * @param:endTime结束时间时间戳
    */
    Integer getRiskCountByTime(LocalDateTime startTime, LocalDateTime endTime);

    /**
     *@notes:根据不同地区等级获取数据数量
     *@Author：fusijia
     *@Date：2025/1/15 10:02
     *@return：CityDataCountDemo 各等级地区数量数据多少
     * @param level 地区等级
     */
    Integer getCityDataCountByLevel(int level);

    /**
     *@notes:根据地区等级联合查询数据数量并排序和返回对地区名称列表
     *@Author：fusijia
     *@Date：2025/1/15 11:02
     *@return：CityDataCountDemo 各等级地区数量数据及名称列表
     * @param level 地区等级
     */

    List<CityCountWithName> getCityDataMapByLevel(int level);


    List<CityData> getCompleteList();


    List<CityData> RiskByYear();


    List<CityData> RiskByMonth();


    List<CityData> RiskByweek();
}
